#include <stdio.h>
int max(int, int);
int c;
int main()
{
    {
        int a = 45, b = 98;
        static int sum;
        sum = max(45, 98);
        a += b;
        {
            int a[] = {1, -2, 3, -4, 5}, i = 0;
            static int sum;
            for (i = 0; i < 5; i++)
                if (a[i] < 0)
                    c = c + a[i];
                else
                    sum = sum + a[i];
            printf("正数和=%d,负数和=%d\n", sum, c);
        }
        c = max(a, sum);
        printf("max=%d\n", c);
        c = a + b + sum;
    }
    printf("总和=%d\n", c);
    return 0;
}

int max(int a, int b)
{
    if (a < b)
        return b;
    else
        return a;
}

/*
静态变量可以是内部静态变量或外部静态变量。
在函数外部定义的就称为外部静态变量，在函数内部定义的就称为内部静态变量。

内部静态变量类似于自动型变量，它的作用域限于定义内部静态变量的函数内部，
但不同于自动型变量的是，内部静态变量是始终存在并占有内存单元，
其初值也只是在进入时赋值一次，而不是在进入函数时被建立或退出函数时被消除。

一般来说函数是外部型的，但同时也可将函数定义为静态的，
被定义为外部静态的函数只能被该函数所在的文件中的其他函数调用，
而不能被其他文件中的函数调用。


通过将变量或函数定义为外部静态型，
可以将一个文件中的一些函数和数据隐藏起来，不允许别的文件存取。
*/